package com.nn.controller;

import com.nn.service.FielService;
import com.nn.vo.ImageVO;
import com.nn.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

@RestController
@CrossOrigin
@RequestMapping("/file")
public class FileController {

    @Autowired
    private FielService fielService;

    /**
     * 请求路径：http://localhost:8091/file/upload
     * 请求参数：file(binary)
     * 返回值类型：SysResult(ImageVO)对象
     * 缓冲流：一次性搬运多大的字节效率最高???
     * 经过测算1024最高
     * 注意关流！！
     * MultipartFile :SpringMVC 专门针对文件上传开发的API
     * 文件上传步骤:
     */
    @PostMapping("/upload")
    public SysResult upload(MultipartFile file) {
        ImageVO imageVO = fielService.upload(file);
        //如果文件上传失败 1，null 2,抛出异常交给全局处理机制
        if (imageVO == null) {
            return SysResult.fail();
        }
        return SysResult.success(imageVO);
    }

    /**
     * 实现图片删除操作
     * 请求路径:http://localhost:8091/file/deleteFile
     * 请求参数:virtualPath 虚拟路径
     * 返回值:SysResult对象
     */

    @DeleteMapping("/deleteFile")
    public SysResult deleteFile(String virtualPath) {
        fielService.deleteFile(virtualPath);
        return SysResult.success();
    }
}
